# -*- coding: utf-8 -*-
import xlrd
import os


def get_path():
    """
    得到路径
    :return:
    """
    path = os.path.dirname(os.path.dirname(__file__))
    return path


# 更多的使用来做工具类 此处使用此方式
class ExcelTool(object):
    """
    通过excel获取数据的工具类
    """

    @staticmethod
    def get_a_row_of_data(filePath, sheetPage, row):
        """
        获取某一行数据
        :param filePath:
        :param sheetPage:
        :param row:
        :return:
        """
        excelFile = xlrd.open_workbook(filePath)
        sheet = excelFile.sheet_by_index(sheetPage)
        return sheet.row_values(row)

    @staticmethod
    def gets_data_for_a_column(filePath, sheetPage, row):
        """
        获取某一列的数据
        :param filePath:
        :param sheetPage:
        :param row:
        :return:
        """
        excelFile = xlrd.open_workbook(filePath)
        sheet = excelFile.sheet_by_index(sheetPage)
        return sheet.col_values(row)

    @staticmethod
    def getallRow(filePath, sheetPage):
        '''
        获取该sheet页下所有行数据
        :param filePath:
        :param sheetPage:
        :return:
        '''
        excelFile = xlrd.open_workbook(filePath)
        sheet = excelFile.sheet_by_index(sheetPage)
        # sheet_name=sheet = excelFile.sheet_by_name(sheetPage)
        res = []
        for x in range(sheet.nrows):
            # print(sheet.row_values(x))
            res.append(sheet.row_values(x))

        return res

    def get_xls(self, xls_name, sheet_name):  # xls_name填写用例的Excel名称 sheet_name该Excel的sheet名称
        path = get_path()
        cls = []
        # 获取用例文件路径
        xlsPath = os.path.join(path, "data", xls_name)
        file = xlrd.open_workbook(xlsPath)  # 打开用例Excel
        sheet = file.sheet_by_name(sheet_name)  # 获得打开Excel的sheet
        # 获取这个sheet内容行数
        nrows = sheet.nrows
        for i in range(nrows):  # 根据行数做循环
            # if sheet.row_values(i)[0] != u'ID':#如果这个Excel的这个sheet的第i行的第一列不等于case_name那么我们把这行的数据添加到cls[]
            cls.append(sheet.row_values(i))
        return cls


if __name__ == '__main__':  # 我们执行该文件测试一下是否可以正确获取Excel中的值
    print(ExcelTool().get_xls('test_case.xls', 'Sheet1'))
    # print(ExcelTool().get_xls('test.xls', 'Sheet1')[1])
    # print(ExcelTool().get_xls('test.xls', 'Sheet1')[3][2])
    # print('测试路径是否OK,路径为：', get_Path())
